package com.colin.response;

import lombok.Data;

/**
 * 统一响应的JSON的数据格式
 * @param <T> data数据的泛型
 */
@Data
public class R <T>{

    private Integer code;
    private String message;
    private T data;

    /**
     * 成功情况的 泛型方法
     * @param data
     * @return
     * @param <T>
     */
    public static <T> R<T> ok(T data) {
        R<T> r = new R<>();
        r.setCode(RCM.SUCCESS.getCode());
        r.setMessage(RCM.SUCCESS.getMessage());
        r.setData(data);
        return r;
    }

    /**
     * R.error(RCM.USER_LOGIN_ERROR.getCode(), RCM.USER_LOGIN_ERROR.getMessage())
     * @return
     * @param <T>
     */
    public static <T> R<T> error(RCM rcm) {
        R<T> r = new R<>();
        r.setCode(rcm.getCode());
        r.setMessage(rcm.getMessage());
        r.setData(null);
        return r;
    }


}
